knitr::opts_chunk$set(echo = TRUE)
options(digits=3)
options(width=120)
library(grid)

Likert Scales

Invented by Rensis Likert (1932).

Questionaire items where respondents respond to a question on a sequence of ordered responses. Common response types include:

Likert, R (1932). A technique for the measurement of attitudes. Archives of Psychology. 140: 1–55.

Categorical vs. Continuous

A key question to ask when using Likert items: Is the variable categorical or contiuous?

When considering the response to be continuous you are assuming the intervals are equal? That is:

$$ Strongly Agree - Agree = Disagree - Neutral $$

Motivation

This package aims to provide the necessary tools to allow the user to make his/her own decisions about how the data should be treated, while also providing figures that may help clarify how well the assumptions discussed here hold up.

Example: PISA Reading Attitudes

The Programme of International Student Assessment (PISA; 2009) assess ~15 year-old students about their reading attitudes:

Students respond to one of four options: Strongly disagree, Disagree, Agree, Strongly Agree

Example: PISA Reading Attitudes

library(likert)

Demo included in the package:

demo('likert', package='likert')

Data preparation:

data(pisaitems)
items24 <- pisaitems[,substr(names(pisaitems), 1,5) == 'ST24Q']
names(items24) <- c(ST24Q01 = "I read only if I have to.",
                    ST24Q02 = "Reading is one of my favorite hobbies.",
                    ST24Q03 = "I like talking about books with other people.",
                    ST24Q04 = "I find it hard to finish books.",
                    ST24Q05 = "I feel happy if I receive a book as a present.",
                    ST24Q06 = "For me, reading is a waste of time.",
                    ST24Q07 = "I enjoy going to a bookstore or a library.",
                    ST24Q08 = "I read only to get information that I need.",
                    ST24Q09 = "I cannot sit still and read for more than a few minutes.",
                    ST24Q10 = "I like to express my opinions about books I have read.",
                    ST24Q11 = "I like to exchange books with my friends.")

Example: PISA Reading Attitudes

str(items24)

Using the likert function

l24 <- likert(items24)
l24 #print(l24)

Numeric Results

summary(l24)

Plotting Likert Results {.flexbox .vcenter}

plot(l24)

Plotting Likert Results (center) {.flexbox .vcenter}

The center option will define what category is considered to be the center.

plot(l24, center=2)

Plotting Likert Results (ordering) {.flexbox .vcenter}

plot(l24, ordered=FALSE, group.order=names(items24)) #Specify the exact order of the y-axis

Plotting Likert Results (changing colors) {.flexbox .vcenter}

plot(l24, colors=c('orange','darkorange','darkblue','blue'))

Plotting Likert Results (response histograms) {.flexbox .vcenter}

plot(l24, include.histogram=TRUE)

Density Plots {.flexbox .vcenter}

plot(l24, type='density', facet=FALSE)

Heatmap Plots {.flexbox .vcenter}

plot(l24, type='heat', wrap=30, text.size=4)

Grouping Responses

l24g <- likert(items24[,1:5], grouping=pisaitems$CNT)
print(l24g)

Grouping Responses: Summary

summary(l24g)

Grouping Responses: Plotting {.flexbox .vcenter}

plot(l24g)

Example 2: DAACS Pre-Pilot

daacs.net/shiny/PrePilot



jbryer/likert documentation built on June 13, 2025, 7:56 p.m.